home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / COMMADIO / KERMIT1.LZH / PCKEXE.BAS < prev    next >
BASIC Source File  |  1980-01-01  |  2KB  |  49 lines

  1. 4  ' This program is meant to be run on the IBM PC.  It converts the
  2. 5  ' printable version of the EXE file (KERMIT.FIX) to a file that can 
  3. 6  ' be run on the PC.
  4. 7  ' Daphne Tzoar, January 83
  5. 8  ' Columbia University Center for Computing Activities 
  6. 9  '
  7. 10 ON ERROR GOTO 430
  8. 30 OPEN "KERMIT.FIX" FOR INPUT AS #1
  9. 40 OPEN "KERMIT.EXE" FOR OUTPUT AS #2
  10. 50 OK$ = "ok"
  11. 70 X$=INPUT$(64,#1)        ' Data plus semi-colon
  12. 80 VALUE$ = LEFT$(X$,1)      'First char of input
  13. 90 VALUE = ASC(VALUE$)
  14. 100 IF VALUE = 64 OR VALUE = 192 GOTO 430    ' @ means we're done
  15. 110 IF VALUE >= 160 AND VALUE <= 175 THEN GOTO 140   ' Kill all illegal chars
  16. 120 IF VALUE >= 32 AND VALUE <= 47 THEN GOTO 140
  17. 130 X$ = MID$(X$,2) : GOTO 80
  18. 140 IF VALUE <> 174 GOTO 210     ' Not a dot (for read) - don't worry
  19. 150 TWO$ = MID$(X$,2,1)          ' Look at char after the dot.
  20. 160 TWO = ASC(TWO$)
  21. 170 IF TWO >= 160 AND TWO <= 175 THEN GOTO 210    ' It's ok.
  22. 180 IF TWO >= 32 AND TWO <= 47 THEN GOTO 210
  23. 190 X$ = MID$(X$,3)        ' Kill the char
  24. 200 GOTO 80
  25. 210 SIZ = LEN(X$)           ' How much input was actual data
  26. 220 READIN = 65 - SIZ
  27. 230 XTWO$=INPUT$(READIN,#1)     ' Get rest of data
  28. 240 X$ = X$ + XTWO$ : X$ = LEFT$(X$,64)
  29. 260 GOSUB 290
  30. 270 PRINT#2,X$;      ' Put data to the file.
  31. 280 GOTO 70
  32. 290 ' GET TWO CHARS, SUBTRACT SPACE (20 HEX) FROM EACH, AND COMBINE
  33. 300 ' TO ONE DIGIT.
  34. 310 FOR A = 1 TO 32
  35. 320   Y$ = MID$(X$,A,1)
  36. 330   Z$ = MID$(X$,A+1,1)
  37. 340   YNUM = ASC(Y$) : ZNUM = ASC(Z$)
  38. 350   IF YNUM > 127 THEN YNUM = YNUM - 128    ' Turn off hi bit if on
  39. 360   IF ZNUM > 127 THEN ZNUM = ZNUM - 128
  40. 370   YNUM = YNUM -32 : ZNUM = ZNUM -32       ' Subtract the space
  41. 380   XNUM = (16 * YNUM) +ZNUM
  42. 390   NEWCHR$ = CHR$(XNUM)
  43. 400   X$ = MID$(X$,1,A-1) + NEWCHR$ + MID$(X$,A+2)
  44. 410 NEXT A
  45. 420 RETURN
  46. 430 PRINT  " [All done.]"
  47. 440 CLOSE #1,#2                            ' Clean up.
  48. 450 END
  49.